package com.liangtian.mdm.dm.jsp.service;

// import com.liangtian.mdm.activiti.api.entity.ShForm;
// import com.liangtian.mdm.activiti.api.entity.TjForm;
import com.liangtian.mdm.dm.group.model.DataViewFlow;
import com.liangtian.mdm.system.user.model.SysUser;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

@SuppressWarnings("rawtypes")
public interface JspActionService {

    String autoCode(String seqName, int length);

    PageInfo queryList(Map<String, Object> param);

    /**
     * <p>TODO 生成弹出框页面的查询方法</p>
     * <p>@param param
     * <p>@return </p>
     *
     * @author : xiaoliu
     * @date :2018年1月2日下午12:51:09
     */
    PageInfo queryPopList(Map<String, Object> param);

    //查询非动态模型模块表里面数据
    PageInfo queryNoTabList(Map<String, Object> param);


    int delete(Map<String, Object> map);

    Map<String, Object> insert(Map<String, Object> param);

    //boolean insertImport(Map<String, String> param,int row);

    boolean insertBg(Map<String, Object> param);

    boolean update(Map<String, Object> param);

    Map<String, Object> queryOne(Map<String, Object> map);

    Map<String, Object> queryDetail(Map<String, Object> map);

    //提交方法
    boolean submit(Map<String, Object> param);

    /**
     * (中国万达集团主数据校验方法专用)
     * 刘晶 2017-09-19添加此处
     *
     * @param forms
     * @return
     */
//	boolean checkFromToWanDaWork(List<TjForm> forms);

    // boolean submitFlow(List<TjForm> forms);

    boolean approve(Map<String, Object> param);

//	boolean approveFlow(List<ShForm> forms);

    // String approveFlow(List<ShForm> forms, String userId, String type);//第三个参数标识是否是移动端应用,移动端应用返回的消息格式与pc端不同,所以加了一个标识

    /**
     * (中国万达集团主数据工作流专用)
     *
     * @param forms
     * @return
     */
    // String approveFlowToWandaWorkflow(ShForm forms, boolean isEnd);

    /**
     * 移动端工作流审核(移动端登录用户信息不存入session)
     *
     * @param forms
     * @return
     * @author jyh
     * @date 2017-06-20
     */
//	boolean approveFlowMobile(List<ShForm> forms, String userId);

    int check(Map<String, Object> map);

    boolean insertDis(Map<String, Object> param) throws Exception;

    void templeExport(String modelId, HttpServletResponse resp);  //导入模板导出

    void exportData(String modelId, HttpServletResponse resp);  //导出模型下的数据

    //这是第一版导入功能（动态模型这块）
    Map<String, Object> excelImport(String modelId, InputStream input);  //excel导入

    //这是最新版导入功能的方法，还在完善中（刘晶2017-11-01开始）
    Map<String, Object> excelSXSSWorkImport(String modelId, InputStream input);  //excel导入新版，刘晶添加

    boolean changeStatus(Map<String, Object> param);

    int queryModelCount(Map<String, Object> param);

    //校验唯一性
    int checkcolumnName(Map<String, Object> param);

    /**
     * <p>针对万达定制化开发了唯一性校验 </p>
     * <p>@param param
     * <p>@return </p>
     *
     * @author : xiaoliu
     * @date :2017年9月20日上午9:30:14
     */
    int checkcolumnNameToWanDa(Map<String, Object> param);

    //--------------------视图权限分类操作---------------------------------
    //查询所有视图
    List<DataViewFlow> queryDataViewFlows(Map map);
//    查询单个视图
//    List<DataViewFlow> queryDataViewFlowsByDataId(Map map);

    int updataDataViewFlow(DataViewFlow g);

    int insertDataFlow(DataViewFlow g);

    int deleteDataFlow(Map map);

    /**
     * <p>TODO  根据modelId,sysCode 生成一个拼接的XML文件 </p>
     * <p>@param map  （modelId 模型Id  sysCode  目标系统code）
     * <p>@return String 拼接的字符串</p>
     *
     * @author : xiaoliu
     * @date :2017年6月14日上午9:25:43
     */
    public Map<String, Object> creatXml(Map map);

    /**
     * <p>TODO  根据modelId,flag,errorText,idLst变更批量分发的数据</p>
     * <p>@param map （modelId,flag,errorText,idLst）
     * <p>@return int </p>
     *
     * @author : xiaoliu
     * @date :2017年6月14日上午9:43:49
     */
    public int batchDisTableFlag(Map map);

//	Map<String, Object> queryBootSel(String table, String code);

    public int batchDisTableFlag2(Map map);


    /**
     * 提交(用户信息不从session中取)--中纺srm接口用
     *
     * @param forms
     * @param user
     * @return
     * @author jyh
     */
    // boolean submitFlow_zf(List<TjForm> forms, SysUser user);

    /**
     * 变更、冻结、解冻-- (中纺srm接口用)
     *
     * @param param
     * @return
     * @author jiangyh
     * @date 2017-09-25
     */
    boolean insertBg_zf(Map<String, Object> param);

    /**
     * 新增申请 (中纺SRM接口用)
     *
     * @param param
     * @return
     * @author jiangyh
     * @date 2017-09-25
     */
    Map<String, Object> insert_zf(Map<String, Object> param, SysUser user);

    /**
     * 修改变更数据（中纺SRM接口用）
     *
     * @param param
     * @return author jiangyh
     * @date 2017-09-25
     */
    boolean update_zf(Map<String, Object> param, SysUser user);

    /**
     * <p>TODO  添加一个非物料模块冻结数据的归档功能</p>
     * <p>@param cond
     * <p>@param list </p>
     *
     * @author : xiaoliu
     * @date :2018年4月17日下午12:48:59
     */
    public void gdData(Map<String, Object> cond);
}